1. Field of the Invention
The present invention relates to the field of data modulation and demodulation, and more particularly, to a data modulating method and apparatus, a data demodulating method and apparatus, and a code arranging method which provide modulation codes having a reduced error propagation probability, a high code efficiency, and a DC suppression capability.
2. Description of the Related Art
A multimode coding method provides a DC suppression capability to a modulation code having no DC suppression capability. In the multimode coding method, additional a-bit information is inserted into an input data stream, 2a random data streams are generated depending on the additional a-bit information, and one of the modulated data streams containing the minimum DC component is selected even when modulation having no DC suppression capability is performed in the 2a random data streams, so that the modulated data streams have a DC suppression capability.
U.S. Pat. No. 6,225,921 discloses “Device for Encoding/Decoding n-bit Source Words into Corresponding m-bit Channel Words, and vice versa” in which a code (d=1, k=7, m=2, and n=3) has a redundancy of about 2%, its code rate R is R=49/75=0.6533, and its code efficiency R/C (d, k) is R/C(d, k)=0.6533/0.6793=96.2%. For convenience, a modulation code used in U.S. Pat. No. 6,225,921 is called A-Code.
U.S. Pat. No. 6,281,815 discloses “Method of Allocating RLL code Having Enhanced DC Suppression Capability, Modulation Method, Demodulation Method, and Demodulation Apparatus therefor” in which when a code (d=1, k=8, m=8, and n=12) has a redundancy of about 2%, its code rate R is R=32/49=0.6531, and its code efficiency R/C (d, k) is R/C(d, k)=0.6531/0.6853=95.3%. For convenience, a modulation code used in U.S. Pat. No. 6,281,815 is referred to as B-Code. Here, “C” denotes capacity depending on “d” and “k”.
In a guided scrambling method described in “Codes for Mass Data Storage Systems” by Kees A. Schouhamer Immink, Shannon Foundation Publishers, chapter 13, 1999, when redundant 4 bits are inserted into every 25 bytes of data and the data is RLL (1, 7)-modulated, a code rate R is R=200/306=0.6536, and a code efficiency R/C (d, k) is R/C(d,k)=0.6536/0.6793=96.2%. A modulation code used in the above document is referred to as a C-Code.
The code rates in the above-mentioned conventional modulation methods are similar, i.e., within a range of 95.3%–96.2%, and the power spectrum density (PSD) curves representing DC suppression capabilities of the A-Code, B-Code, and C-Code are shown in FIG. 1.
However, in the multimode coding method disclosed in the above document, the frequency of usage of additional information necessary for making a data stream into random data should be increased to have a sufficient DC suppression capability. Also, even though a modulation technology having higher code efficiency is developed, a DC suppression capability may be insufficient. For example, when the B-code disclosed in U.S. Pat. No. 6,281,815 does not contain redundant bits, it can suppress a DC offset, but cannot have a sufficient DC suppression capability in a case of having no additional bits. Hereinafter, a code, which is capable of suppressing a DC offset without redundant bits, but has a weak suppression performance in the absence of additional bits, is referred to as a weak DC-free modulation code.
FIG. 2 illustrates a conventional multiplexing method of converting an input data stream into random data. The conventional multiplexing method by which an input data stream is converted into 2a random data streams by continuously scrambling the input data stream using additional a-bit information is disclosed in Korean Pat. No. 1999-703183, entitled “Digital Modulation Circuit, Digital Modulation Method, Digital Demodulation Circuit, and Digital Demodulation Method”, filed by SANYO DENKI CO., LTD.
In FIG. 2, an input data stream yi composed of data xi,0 through xi,u−1 (referred to as code modulation units) of predetermined bits is converted into a pseudorandom data stream f(yi/si) by performing exclusive OR operations on multiplexed information st and the code modulation units xi,0 through xi,u−1 using exclusive OR devices.
In other words, the first code modulation unit xi,0 is converted into data yti,0 by performing an exclusive OR operation on the first code modulation unit xi,0 and the initial data (multiplexed information) st using an exclusive OR device. A next code modulation unit xi,1 is converted into data yti,1 by performing an exclusive OR operation on the converted data yti,0 and the code modulation unit xi,1. Thereafter, an exclusive OR operation is repeated on converted data of a preceding code modulation unit and a code modulation unit to be converted up to the final code modulation unit xi,u−1 of the data input stream yi to create converted data of each code modulation unit.
FIG. 3 illustrates a stream y′i that is demodulated through an inversion of an RLL stream f′(yi/st) when an input data stream is converted into pseudorandom data according to the multiplexing method presented in FIG. 2, Run Length Limited (RLL)-modulated, and recorded on and reproduced from a storage medium.
During the inversion of data, the demodulated stream y′i is generated by performing an exclusive OR operation, in a repeated fashion, on each demodulation code unit to be inverted except a first demodulation code unit (multiplexed information st) of a non-inverted RLL stream f′(yi/st) and a demodulation code unit (initial data or a non-inverted demodulation code unit) immediately before the demodulation code unit to be inverted.
In other words, the first demodulation code unit yti,0 is inverted into data xi,0 by performing an exclusive OR operation on the first demodulation code unit yti,0 and the initial data (multiplexed information) st. Next, a demodulation code unit yti,1 is inverted into data xi,1 by performing an exclusive OR operation on the first non-inverted demodulation code unit yti,0 and the demodulation code unit yti,1. Thereafter, an exclusive OR operation is repeated on a demodulation code unit to be inverted and a demodulation code unit immediately before the demodulation code unit to be inverted up to the final demodulation code unit of the RLL stream f′(yi/st) to generate inverted data of each demodulation code unit.
As described above, during the inversion of data, one non-inverted demodulation code unit is used in the inversion of a demodulation code unit. Thus, when an error occurs in the demodulation code unit to be inverted, the error also affects a subsequent demodulation code unit. For example, when a non-inverted demodulation code unit yt*i,u−3 has an error, the error affects inverted data x*i,u−3 and subsequent data x*i,u−2.
Accordingly, in the prior art, when the RLL stream f′(yi/st) has an error, the error propagates to unscrambled data x*i,u−3 and subsequent data x*i,u−2. The error propagation is a general feature of the multimode coding method using scrambling.